home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 376-400 / disk_376 / toollibrary / src / toolproto.h < prev   
C/C++ Source or Header  |  1992-05-06  |  11KB  |  278 lines

  1.  #include <exec/types.h>
  2.  #include <intuition/intuition.h>
  3.  #include <proto/exec.h>
  4.  #include <proto/dos.h>
  5.  #include <proto/mathieeedoubbas.h>
  6.  #include <proto/mathieeedoubtrans.h>
  7.  #include <proto/intuition.h>
  8.  #include <proto/graphics.h>
  9.  #include <stdio.h>
  10.  #include <stdlib.h>
  11.  #include <string.h>
  12.  #include <math.h>
  13.  
  14.  #define E   2.718281828
  15.  #define PPI 3.14159265358979323846
  16.  
  17.  #define Mul(a,b) NewMul(a,b)
  18.  #define Add(a,b) NewAdd(a,b)
  19.  #define Sub(a,b) NewSub(a,b)
  20.  #define Div(a,b) NewDiv(a,b)
  21.  #define Flt(a)   NewFlt(a)
  22.  #define Fix(a)   NewFix(a)
  23.  #define Cmp(a,b) NewCmp(a,b)
  24.  #define Abs(a)   NewAbs(a) 
  25.  #define Neg(a)   NewNeg(a)
  26.  #define Pow(a,b) NewPow(a,b)
  27.  #define Tst(a)   NewTst(a)
  28.  #define Log10(a) NewLog10(a)
  29.  #define Floor(a) NewFloor(a)
  30.  #define ACos(a)  NewAcos(a)
  31.  #define ASin(a)  NewAsin(a)
  32.  #define ATan(a)  NewAtan(a)
  33.  #define Sin(a)   NewSin(a)
  34.  #define Cos(a)   NewCos(a)
  35.  #define Tan(a)   NewTan(a)
  36.  #define Log(a)   NewLog(a)
  37.  #define Sqr(a)   NewSqr(a)
  38.  
  39.  double NewSub(double a,
  40.                double b);
  41.  double NewSqr(double a);
  42.  double NewSin(double a);
  43.  double NewCos(double a);
  44.  double NewTan(double a);
  45.  double NewPow(double a,
  46.                double b);
  47.  double NewNeg(double a);
  48.  double NewMul(double a,
  49.                double b);
  50.  double NewLog10(double a);
  51.  double NewLog(double a);
  52.  double NewFlt(LONG a);
  53.  LONG   NewFix(DOUBLE a);
  54.  double NewFloor(double a);
  55.  double NewDiv(double a,
  56.                double b);
  57.  double NewCos(double a);
  58.  LONG NewCmp(double a,
  59.              double b);
  60.  double NewCeil(double a);
  61.  double NewAtan(double a);
  62.  double NewAsin(double a);
  63.  double NewAdd(double a,
  64.                double b);
  65.  double NewAcos(double a);
  66.  double NewAbs(double a);
  67.  LONG   NewTst(DOUBLE a);
  68.  
  69.  struct info 
  70.   {
  71.    USHORT code;
  72.    struct IntuiMessage *Nachricht;
  73.    ULONG NachrichtenArt;
  74.    APTR IAddress;
  75.    SHORT MouseX,MouseY;
  76.   };
  77.  
  78.  struct Block 
  79.   {
  80.    LONG Links,Rechts;
  81.    LONG RechenArt,Valid;
  82.    LONG Konstante;
  83.    LONG Fehler;
  84.    char *String;
  85.    DOUBLE Wert;
  86.    struct Block *Left,*Right;
  87.   };
  88.  
  89.  #define MAXCHARS 500
  90.  
  91.  struct HilfsStruktur
  92.   {
  93.    char Formel[MAXCHARS];
  94.    char Hilfe[MAXCHARS];
  95.    DOUBLE Variable,Konstante1,Konstante2,Konstante3,Konstante4;
  96.    LONG Fehler;
  97.   };
  98.  
  99.  
  100.  struct Konstanten 
  101.   {
  102.    DOUBLE k1,k2,k3,k4;
  103.   };
  104.  
  105.  
  106. /* Fehlercodes */
  107.  
  108.  #define DIVBYZERO  1 /* Es wurde durch 0 geteilt                         */
  109.  #define LOGNEG     2 /* Es wurde von Zahl <= 0 der Log gebildet          */
  110.  #define SQRTNEG    4 /* Es wurde von Zahl <0   die Wurzel gebildet       */
  111.  #define ATRIG      8 /* Es wurde von Zahl >1 oder <-1 asin/acos gebildet */
  112.  #define UNPAKLAM  16 /* Unpaarige Klammern                               */
  113.  #define TEST      32
  114.  #define NOFUNC    64 /* Keine Funktion eingegeben                        */
  115.  #define NO_KONST 128 /* Keine solche Konstante                           */
  116.  #define NO_MEM   256 /* Kein Speicher für weiteren Block                 */
  117.  #define POWERROR 512 /* Negative Zahl hoch Bruch wurde versucht          */
  118.  #define NO_FUNC 1024 /* Keine Funktion gefunden                          */
  119.  
  120. /* Rechenarten */
  121.  #define ADDI    1
  122.  #define SUBT    2
  123.  #define MULT    3
  124.  #define DIVI    4
  125.  #define POWE    5
  126.  #define SINU    6
  127.  #define COSI    7
  128.  #define    TANG    8
  129.  #define ASIN    9
  130.  #define ACOS    10
  131.  #define ATAN    11
  132.  #define LOG1    12
  133.  #define LNAT    13
  134.  #define ABSO    14
  135.  #define SIGU    15
  136.  #define SQRT    16
  137.  #define FLOO    17
  138.  #define X    18
  139.  #define MKON    19    /* Math. Konstante */
  140.  #define UKON    20    /* User  Konstante */
  141.  #define ZIFF    21    /* Ziffern         */
  142.  #define KLAM    22
  143.  
  144.  VOID __asm Print(register __a1 struct RastPort *RP,
  145.                   register __a0 char *text,
  146.                   register __d0 LONG col,
  147.                   register __d1 LONG xpos,
  148.                   register __d2 LONG ypos);
  149.  ULONG __asm EventAbfrage(register __a0 struct Window *Window,
  150.                           register __a1 struct info *MsgInfo);
  151.  LONG __asm request(register __d0 char *JaPointer,
  152.                     register __d1 char *NeinPointer,
  153.                     register __d2 char *BodyPointer);
  154.  LONG __asm ev(register __d0 LONG l,register __d1 LONG r,register __d2 struct Block *block);
  155.  VOID __asm Free_Block(register __a0 struct Block *First);
  156.  VOID __asm Free_Konst(register __a0 APTR Zeiger);
  157.  APTR Init_Konst(VOID);
  158.  LONG __asm Set_Konst_P(register __a0 APTR Zeiger,register __d0 LONG Nummer,register __d1 DOUBLE *Wert_P);
  159.  LONG Set_Konst(APTR Zeiger,LONG Nummer,DOUBLE Wert);
  160.  struct Block * __asm Init_Mem(register __a0 char *string);
  161.  LONG __asm Init_Block(register __a0 struct Block *Zeiger);
  162.  LONG __asm check(register __d0 LONG z1,register __d1 LONG z2,
  163.                   register __d2 LONG l,register __d3 LONG r,
  164.                   register __a0 char *string);
  165.  LONG __asm checkback(register __d0 LONG z1,register __d1 LONG z2,
  166.                       register __d2 LONG l,register __d3 LONG r,
  167.                       register __a0 char *string);
  168.  VOID __asm copy(register __d0 LONG i,register __d1 LONG Anzahl,
  169.                  register __d2 char *Ziel,register __d3 char *Source);
  170.  double sgn(DOUBLE x);
  171.  LONG BereichsKontr(DOUBLE b);
  172.  LONG __asm PreCalc(register __d0 struct Block *Zeiger,register __d1 APTR Konst);
  173.  DOUBLE __asm GetKonst(register __a0 APTR Konst,register __d1 LONG Nummer);
  174.  DOUBLE Calc(struct Block *Zeiger,DOUBLE x);
  175.  LONG __asm AnzahlKlammern(register __a0 char *string);
  176.  VOID __asm left(register __a0 char *Ziel,
  177.                  register __a1 char *string,
  178.                  register __d0 LONG Anzahl);
  179.  VOID __asm right(register __a0 char *Ziel,
  180.                   register __a1 char *string,
  181.                   register __d0 LONG Anzahl);
  182.  VOID __asm mid(register __a0 char *Ziel,
  183.                 register __a1 char *string,
  184.                 register __d0 LONG Anfang,
  185.                 register __d1 LONG Anzahl);
  186.  DOUBLE stof(char *string);
  187.  VOID ftos(char *Ziel,
  188.            DOUBLE Zahl,
  189.            LONG Nachkomma);
  190.  VOID __asm UmwFtoS(register __a0 char *Ziel,
  191.                     register __a1 DOUBLE *Zahl1,
  192.                     register __d0 LONG Nachkomma);
  193.  DOUBLE Vorkomma(DOUBLE Zahl);
  194.  VOID __asm testfunktion(register __a0 LONG *test);
  195.  LONG search(char *string);
  196.  LONG __asm NewRequest(register __a0 struct Window *AktWindow,
  197.                        register __d0 char *JaPointer,
  198.                        register __d1 char *NeinPointer,
  199.                        register __d2 char *BodyPointer);
  200.  
  201.  VOID __asm Box(register __a1 struct RastPort *RastPort,    /* Der RastPort */
  202.                 register __d0 LONG xs,                      /* Start: X     */
  203.                 register __d1 LONG ys,                      /* Start: Y     */
  204.                 register __d2 LONG xe,                      /* Ende : X     */
  205.                 register __d3 LONG ye);                      /* Ende : Y     */
  206.  VOID __asm Center(register __a1 struct Window *Window,     /* Das Fenster  */
  207.                    register __a0 char *string,              /* Der Text     */
  208.                    register __d0 LONG Color,                /* Die Farbe    */
  209.                    register __d1 LONG y_Pos);                /* Die Y-Pos.   */
  210.  VOID __asm Gadget_On(register __a0 struct Gadget *Gadget,  /* Das Gadget   */
  211.                       register __d1 struct Window *Window);  /* Das Fenster  */
  212.  VOID __asm Gadget_Off(register __a0 struct Gadget *Gadget, /* Das Gadget   */
  213.                        register __a1 struct Window *Window); /* Das Fenster  */
  214.  LONG __asm GetPropPosH(register __a0 struct Gadget *Gadget,/* Das Gadget   */
  215.                         register __d0 LONG MaxPos);          /* Max. Pos.    */
  216.  LONG __asm GetPropPosV(register __a0 struct Gadget *Gadget,/* Das Gadget   */
  217.                         register __d0 LONG MaxPos);          /* Max. Pos.    */
  218.  VOID __asm SetPropPosH(register __a0 struct Gadget *Gadget,/* Das Gadget   */
  219.                         register __a1 struct Window *Window,
  220.                         register __d0 LONG MaxPos,          /* Die MaxPos   */
  221.                         register __d1 LONG Schrittweite,    /* Schrittweite */
  222.                         register __d2 LONG NewPos);          /* Neue Posit.  */
  223.  VOID __asm SetPropPosV(register __a0 struct Gadget *Gadget,/* Das Gadget   */
  224.                         register __a1 struct Window *Window,
  225.                         register __d0 LONG MaxPos,          /* Die MaxPos   */
  226.                         register __d1 LONG Schrittweite,    /* Schrittweite */
  227.                         register __d2 LONG NewPos);          /* Neue Posit.  */
  228.  LONG __asm PrepareTmpRas(register __a1 struct RastPort *RP);/* Der RastPort */
  229.  VOID __asm ClearTmpRas(register __a1 struct RastPort *RP);   /* Der RastPort */
  230.  LONG __asm PrepareArea(register __a1 struct RastPort *RP,
  231.                         register __d0 LONG MaxPoints);
  232.  VOID __asm ClearArea(register __a1 struct RastPort *RP);
  233.  
  234.  VOID __asm Fak(register __a0 DOUBLE *Ziel,
  235.                 register __d0 LONG i);
  236.  VOID __asm NuK(register __a0 DOUBLE *Ziel,
  237.                 register __d0 LONG n,
  238.                 register __d1 LONG k);
  239.  VOID __asm GetKonst_P(register __a0 DOUBLE *Ziel,
  240.                        register __a1 APTR Konst,
  241.                        register __d0 LONG Nummer);
  242.  LONG __asm Calc_P(register __a0 DOUBLE *Ziel,
  243.                    register __a1 struct Block *Zeiger,
  244.                    register __a2 DOUBLE *x);
  245.  VOID __asm berechnen(register __a0 DOUBLE *Ziel,
  246.                       register __d0 UBYTE *string,
  247.                       register __d1 DOUBLE *var,
  248.                       register __d2 struct Konstanten *kon,
  249.                       register __d3 LONG *Fehler);
  250.  VOID __asm UmwStoF(register __a0 DOUBLE *Ziel,
  251.                     register __a1 char *string);
  252.  
  253.  
  254.  struct Menu * __asm LastMenu(register __a0 struct Menu *menu);
  255.  struct MenuItem * __asm LastItem(register __a0 struct Menu *menu);
  256.  struct MenuItem * __asm LastSub(register __a0 struct Menu *menu);
  257.  struct Menu * __asm AddMenu(register __a0 struct Menu *menu,
  258.                              register __a1 char *Titel,
  259.                              register __d0 USHORT Flags);
  260.  struct Item * __asm AddItem(register __a0 struct Menu *menu,
  261.                              register __a1 char *Titel,
  262.                              register __d0 USHORT Flags,
  263.                              register __d1 char HotKey);
  264.  struct Item * __asm AddSub(register __a0 struct Menu *menu,
  265.                             register __a1 char *Titel,
  266.                             register __d0 USHORT Flags,
  267.                             register __d1 char HotKey);
  268.  struct MenuItem * __asm GetItem(register __a0 struct Menu *menu,
  269.                                  register __a1 char *Titel,
  270.                                  register __d0 USHORT Flags,
  271.                                  register __d1 char HotKey);
  272.  VOID __asm ClearMenu(register __a0 struct Menu *menu);
  273.  struct MenuItem * __asm FreeItem(register __a0 struct MenuItem *item);
  274.  struct Menu * __asm FreeMenu(register __a0 struct Menu *menu);
  275.  VOID __asm NewSetMenuStrip(register __a1 struct Window *Window,
  276.                             register __a0 struct Menu *menu);
  277.  
  278.